# python中的集合与数学中集合的概念一致
# python中的集合是一个【无序的不重复】元素序列-----就是java中的set
# 集合中只存储不可变数据类型
# 在python中集合使用{}定义
# 与列表、字典一样，都是python中的可变数据类型


################################################集合的创建
set1 = {10, 20, 30, 40, 50}
print(set1)

# 集合当中只能存储不可变数据类型，以下代码会报错
# set1={[10,20],[30,40],[50,60]}
# print(set1)


# 使用set()的创建集合
set2 = set()  # 空集合的
print(set2)

# 字典也是用{},这边创建的是一个空字典，而不是空集合
set3 = {}
print(set3)

set4 = set("helloword")
# 输出{'h', 'w', 'l', 'd', 'o', 'r', 'e'}
print(set4)

# 集合属于序列的一种
set5 = set(range(1, 10))
print(set5)
print('max:', max(set5))
print('min:', min(set5))
print('len:', len(set5))

print('9在集合中存在么?', 9 in set5)
print('9在集合中不存在么?', 9 not in set5)

#######################################################集合的操作符

a = {10, 20, 30, 40, 50}
b = {30, 40, 50, 60, 70}

# 交集操作
print(a & b)
# 并集操作
print(a | b)
# 差集操作
print(a - b)
# 补集操作
print(a ^ b)

##############################################################集合的相关操作

# 添加元素
a = {1, 2, 3}
print(a)
a.add(4)
print(a)

# 删除元素
a.remove(2)
print(a)

# 清空集合
a.clear()
print(bool(a))

###################################################################集合的遍历
s = {1, 2, 3}
for item in s:
    print(item)

# 使用enumerate
for index, item in enumerate(s):
    print(index, '---->', item)

###########################################################集合的生成式
s = {i for i in range(1, 10)}
print(s)

s = {i for i in range(1, 10) if i % 2 == 0}
print(s)
